package com.example.auth.demo.service;

import com.example.auth.demo.domain.PageResult;
import com.example.auth.demo.domain.auth.*;

import java.util.List;

public interface CustomerServiceService {
    // 工单表相关
    void createWorkOrder(WorkOrder workOrder);
    WorkOrder getWorkOrderById(Long id);
    // CustomerServiceService.java
    PageResult<WorkOrder> getAllWorkOrdersByPage(int page, int pageSize);
    void updateWorkOrderStatus(WorkOrder workOrder);
    void deleteWorkOrder(Long id);

    // 知识库表相关
    void createKnowledgeBase(KnowledgeBase knowledgeBase);
    KnowledgeBase getKnowledgeBaseById(Long id);
    // 在Service接口中添加方法
    PageResult<KnowledgeBase> getAllKnowledgeBases(int page, int pageSize, String sort, String order);
    void updateKnowledgeBase(KnowledgeBase knowledgeBase);
    void deleteKnowledgeBase(Long id);

    // 玩家补偿表相关
    void createPlayerCompensation(PlayerCompensation playerCompensation);
    List<PlayerCompensation> getPlayerCompensationsByPlayerId(Long playerId);

    // 新增方法
    PageResult<PlayerCompensation> getAllPlayerCompensations(
            int page, int pageSize, Long playerId, String itemType, String sort, String order
    );
    void updatePlayerCompensation(PlayerCompensation playerCompensation);
    void deletePlayerCompensation(Long id);


    // 原有方法
    void banPlayer(PlayerBan playerBan);
    PlayerBan getPlayerBanById(Long id);
    List<PlayerBan> getPlayerBansByPlayerId(Long playerId);

    // 新增方法
    PageResult<PlayerBan> getAllPlayerBans(
            int page, int pageSize, Long playerId, String startTime, String endTime, String sort, String order
    );
    void updatePlayerBan(PlayerBan playerBan);
    void deletePlayerBan(Long id);

    // 角色及装备锁定表相关
    void lockRoleEquipment(RoleEquipmentLock roleEquipmentLock);
    RoleEquipmentLock getRoleEquipmentLockById(Long id);
    List<RoleEquipmentLock> getRoleEquipmentLocksByRoleId(Long roleId);
    List<RoleEquipmentLock> getRoleEquipmentLocksByEquipmentId(Long equipmentId);
}